﻿using System;
using System.Data;
using Texfina.Core.Web;
using Texfina.Core.Common;
using Texfina.Core.Data;
using Texfina.Entity.Sy;
using SYBOQry = Texfina.BOQry.Sy;

namespace Texfina.ERP
{

   public partial class wfSelEmpPer : EditPage
   {
      protected void Page_Load(object sender, EventArgs e)
      {
         this.LoadInPostBack();

         if (this.IsPostBack)
            return;

         this.LoadData();
      }
      public override void LoadListControls()
      {
         this.Page.Form.DefaultButton = bttOk.UniqueID;
         EUsuario objE = new EUsuario();

         IBOQuery objBO = WCFHelper.GetObject<IBOQuery>(typeof(SYBOQry.Usuario));
         objE.IdLogon = Session[ConstSessionVar.USERID ].ToString();
         DataTable dt = objBO.GetByCriteria(objE);
         if (dt.Rows.Count > 0 )
         {
            lblUserName.Text = dt.Rows[0]["dsNombres"].ToString();
            Session[ConstSessionVar.USERID] = dt.Rows[0]["idUser"].ToString();
         }
         this.CargarEmpresa();

      }

      protected void ddlidLogon_SelectedIndexChanged(object sender, EventArgs e)
      {
         this.CargarEmpresa();
      }

      private void CargarEmpresa()
      {
         EUsuario objE = new EUsuario();

         IBOQuery objBO = WCFHelper.GetObject<IBOQuery>(typeof(SYBOQry.Usuario));
         objE.IdLogon = Session[ConstSessionVar.USERID].ToString();

         objE = (EUsuario)objBO.GetByKey(objE);

         IBOQuery objEmp = WCFHelper.GetObject<IBOQuery>(typeof(SYBOQry.Empresa));
         EEmpresa objEEmp = new EEmpresa();

         DataTable dt = objEmp.GetList(objEEmp);

         ddlidEmpresa.Items.Clear();
         WebHelper.LoadListControl(ddlidEmpresa, dt, "dsEmpresa", "idEmpresa", true);

         this.CargarPeriodo();
      }

      private void CargarPeriodo()
      {
         SYBOQry.IEmpresa objBO = WCFHelper.GetObject<SYBOQry.IEmpresa>(typeof(SYBOQry.Empresa));
         EEmpPeriodo objE = new EEmpPeriodo();
         objE.IdEmpresa = ddlidEmpresa.SelectedValue;

         DataTable dt = objBO.GetPeriodos(objE);

         ddlidPeriodo.Items.Clear();
         WebHelper.LoadListControl(ddlidPeriodo, dt, "idPeriodo", "idPeriodo", true);

         WebHelper.ListControlSetValue(ddlidPeriodo,DateTime.Now.Year.ToString());

      }

      protected void ddlidEmpresa_SelectedIndexChanged(object sender, EventArgs e)
      {
         this.CargarPeriodo();
      }

      protected void bttOk_Click(object sender, EventArgs e)
      {

         Session[ConstSessionVar.EMPRESA] = ddlidEmpresa.SelectedValue;
         Session[ConstSessionVar.PERIODO] = ddlidPeriodo.SelectedValue;

         if (Session[ConstSessionVar.ISADM].ToString() != ConstFlagEstado.ACTIVADO)
         {
            EUsuario objE = new EUsuario();

            IBOQuery objUsr = WCFHelper.GetObject<IBOQuery>(typeof(SYBOQry.Usuario));
            objE.IdUser = Session[ConstSessionVar.USERID].ToString();
            objE = (EUsuario)objUsr.GetByKey(objE);

            SYBOQry.IUsuario objUsr2 = WCFHelper.GetObject<SYBOQry.IUsuario>(typeof(SYBOQry.Usuario));

            if (objUsr2.EsAdministrador(objE))
               Session[ConstSessionVar.ISADM] = ConstFlagEstado.ACTIVADO;

         }

         Response.Redirect("wfMainFrame.aspx");

      }

      protected void bttCancel_Click(object sender, EventArgs e)
      {
         Response.Redirect("wfLogout.aspx");
      }
   }
}